/**
 * Created by Administrator on 2018/3/21. 项目公用js代码
 */
/**
 * 省市县联动--省份选择
 */
function choiceOne() {
    var pro = $("#typeOne").val();
    $("#typeTwo").html("<option value=''></option>");
    $("#typeTwo").val("");
    if (pro) {
        jo.postAjax("travel/sourceType/getSourceTypeList.action", {"parentId": pro}, function (json) {
            if (json && json.code == "0") {
                var s = new JoSelect(document.getElementById("typeTwo"));
                if (jo.isValid(s.element.getAttribute("firstItem"))) {
                    s.firstItem = JSON.parse(s.element.getAttribute("firstItem"));
                }
                s.load(json.data);
                choiceTwo();//调用市选择
                if (typeof (choiceOneCall) == "function") {
                    choiceOneCall(pro);
                }
            }
        }, true);
    } else {
        //如果省份啥也没选,同时将县也清空
        $("#typeThree").html("<option value=''></option>");
        $("#typeThree").val("");
    }
}

/**
 * 省市县联动--市选择
 */
function choiceTwo() {
    var pro = $("#typeTwo").val();
    $("#typeThree").html("<option value=''></option>");
    $("#typeThree").val("");
    if (pro) {
        jo.postAjax("travel/sourceType/getSourceTypeList.action", {"parentId": pro}, function (json) {
            if (json && json.code == "0") {
                var s = new JoSelect(document.getElementById("typeThree"));
                if (jo.isValid(s.element.getAttribute("firstItem"))) {
                    s.firstItem = JSON.parse(s.element.getAttribute("firstItem"));
                }
                s.load(json.data);
                if (typeof (choiceTwoCall) == "function") {
                    choiceTwoCall(pro);
                }
            }
        }, true);
    }
}

/**
 * 随着滚动条自动悬浮按钮栏
 */
function autoFloatButtonBar() {
    var top = $(".button-bar").offset().top;//距离顶部距离
    var floated = false;//当前悬浮状态,避免不必要的属性设置
    //下面这2行是为了显示更平滑,存在bug,已废弃,通过按钮条备份节点来优化显示
    /*var pHei = $(".button-bar").parent().outerHeight();//父元素高度
     $(".button-bar").parent().css("height",pHei+"px");*/
    $(document).scroll(function (e) {
        if (!floated && $(document).scrollTop() >= top) {
            floated = true;
            $(".button-bar").after('<div class="button_bar_copy" style="height:' + $(".button-bar").outerHeight() + "px" + ';width:1px;margin:0px;padding:0px;"></div>');
            $(".button-bar").addClass("button-float");
        } else if (floated && $(document).scrollTop() <= top) {
            floated = false;
            $(".button-bar").next(".button_bar_copy").remove();
            $(".button-bar").removeClass("button-float");
        } else {
            //console.info("不需要变"+"---此时="+$(".button-bar").offset().top +"=="+top)
        }
    });
}

/**
 * 解析字段核心方法(供具体的解析方法调用)
 * @param ids
 * @param obj
 * @returns {*}
 */
function parseOption(ids, obj) {
    var res = "";
    if (ids) {
        if (!obj) {//映射无效则直接返回ids
            return ids;
        }
        var kv = obj;
        var arr = ids.split(",");
        for (var i = 0; i < arr.length; i++) {
            if (i != 0) {
                res += ",";
            }
            res += jo.getDefVal(kv[arr[i]], arr[i]);//取不到值则返回key
        }
    }
    return res;
}
/**
 * 解析保护地状态
 * @param ids
 * @param bFormat 是否格式化
 * @returns {string}
 */
function parse_reserveState(ids, bFormat) {
    var kv = {};
    if (bFormat) {//格式化开启,通常视图页面需要对不同的状态显示不同的样式
        kv = {
            "1": "<span class='bg-primary font-white padding-2'>上报待审批</span>",
            "2": "<span class='bg-green font-white padding-2'>审批通过</span>",
            "3": "<span class='bg-red font-white padding-2'>审批不通过</span>"
        };
    } else {
        kv = {
            "1": "上报待审批",
            "2": "审批通过",
            "3": "审批不通过"
        };
    }
    return parseOption(ids, kv);
}
//解析审批状态
function parse_reserveCheckState(ids, bFormat) {
    var kv = {};
    if (bFormat) {//格式化开启,通常视图页面需要对不同的状态显示不同的样式
        kv = {
            "1": "<span class='bg-orange font-white padding-2'>待审批</span>",
            "2": "<span class='bg-green font-white padding-2'>通过</span>",
            "3": "<span class='bg-red font-white padding-2'>不通过</span>"
        };
    } else {
        kv = {
            "1": "待审批",
            "2": "通过",
            "3": "不通过"
        };
    }
    return parseOption(ids, kv);
}
/**
 * 再次上报数据
 */
joForm.saveAgain = function(sUrl){
    jo.confirm("请确定已经按照审批意见作出了修改",function(){
        sUrl = jo.getDefVal(sUrl,joForm.params["saveAgainUrl"]);
        if(jo.isValid(sUrl)){
            if(joForm.isAdd){
                jo.showMsg("表单状态异常:joForm.isAdd="+joForm.isAdd);
            }else{
                var oData = jo.form2Json(joForm.params["formObj"]);
                //修改前对表单数据的处理
                if(typeof(joForm.dealDataAtUpdateBefore) == "function"){
                    joForm.dealDataAtUpdateBefore(oData);
                }
                //表单验证
                if(typeof (joForm.checkForm) == "function"){
                    joForm.checkForm(joForm.form);
                }else{
                    if(!jo.checkForm(joForm.form)){//验证不通过直接返回
                        return;
                    }
                }
                jo.postAjax(sUrl,oData, function(result){
                    if(result.code == 0){
                        if(typeof(joForm.updateSuccessAfter) == "function"){
                            joForm.updateSuccessAfter(result);
                        }else{
                            window.parent.jo.showMsg("修改成功!");
                            window.parent.reloadCurrentPage();//重新加载父页面数据
                            window.location.reload();
                        }
                    }else{
                        jo.showMsg(result.info)
                    }
                });

            }
        }else{
            jo.showMsg("{saveAgainUrl}无效!");
        }
    })
};
